home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1998 June / SGI Freeware 1998 June.iso / dist / fw_bind.idb / usr / freeware / lib / bind / include / isc / tree.h.z / tree.h
C/C++ Source or Header  |  1998-05-26  |  974b  |  49 lines

  1. /* tree.h - declare structures used by tree library
  2.  *
  3.  * vix 22jan93 [revisited; uses RCS, ANSI, POSIX; has bug fixes]
  4.  * vix 27jun86 [broken out of tree.c]
  5.  *
  6.  * $Id: tree.h,v 8.2 1996/10/25 18:11:03 vixie Exp $
  7.  */
  8.  
  9.  
  10. #ifndef    _TREE_H_INCLUDED
  11. #define    _TREE_H_INCLUDED
  12.  
  13.  
  14. #ifndef __P
  15. # if defined(__STDC__) || defined(__GNUC__)
  16. #  define __P(x) x
  17. # else
  18. #  define __P(x) ()
  19. # endif
  20. #endif
  21.  
  22. /*
  23.  * tree_t is our package-specific anonymous pointer.
  24.  */
  25. #if defined(__STDC__) || defined(__GNUC__)
  26. typedef    void *tree_t;
  27. #else
  28. typedef    char *tree_t;
  29. #endif
  30.  
  31.  
  32. typedef    struct tree_s {
  33.         tree_t        data;
  34.         struct tree_s    *left, *right;
  35.         short        bal;
  36.     }
  37.     tree;
  38.  
  39.  
  40. void    tree_init    __P((tree **));
  41. tree_t    tree_srch    __P((tree **, int (*)(), tree_t));
  42. tree_t    tree_add    __P((tree **, int (*)(), tree_t, void (*)()));
  43. int    tree_delete    __P((tree **, int (*)(), tree_t, void (*)()));
  44. int    tree_trav    __P((tree **, int (*)()));
  45. void    tree_mung    __P((tree **, void (*)()));
  46.  
  47.  
  48. #endif    /* _TREE_H_INCLUDED */
  49.